import { IPSModelObject } from '../ipsmodel-object';
import { IPSSysTestCaseInput } from './ipssys-test-case-input';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSSysTestCaseAssert
 */
export interface IPSSysTestCaseAssert extends IPSModelObject {
  /**
   * 断言标记
   * @type {string}
   */
  assertTag: string;

  /**
   * 断言标记2
   * @type {string}
   */
  assertTag2: string;

  /**
   * 断言标记3
   * @type {string}
   */
  assertTag3: string;

  /**
   * 断言标记4
   * @type {string}
   */
  assertTag4: string;

  /**
   * 断言类型
   * @description 值模式 [测试断言类型] {RESULT：预期结果、 EXCEPTION：预期异常、 DATAEXISTS：预期数据存在、 NOEXCEPTION：预期无异常、 CUSTOMCODE：自定义代码、 USER：用户自定义、 USER2：用户自定义2、 USER3：用户自定义3、 USER4：用户自定义4 }
   * @type {( string | 'RESULT' | 'EXCEPTION' | 'DATAEXISTS' | 'NOEXCEPTION' | 'CUSTOMCODE' | 'USER' | 'USER2' | 'USER3' | 'USER4')}
   */
  assertType: string | 'RESULT' | 'EXCEPTION' | 'DATAEXISTS' | 'NOEXCEPTION' | 'CUSTOMCODE' | 'USER' | 'USER2' | 'USER3' | 'USER4';

  /**
   * 断言值
   * @type {string}
   */
  assertValue: string;

  /**
   * 异常名称
   * @type {string}
   */
  exceptionName: string;

  /**
   * 异常标记
   * @type {string}
   */
  exceptionTag: string;

  /**
   * 异常标记2
   * @type {string}
   */
  exceptionTag2: string;

  /**
   * 测试用例输入
   *
   * @type {IPSSysTestCaseInput}
   */
  getPSSysTestCaseInput(): IPSSysTestCaseInput | null;

  /**
   * 测试用例输入
   *
   * @type {IPSSysTestCaseInput}
   */
  get psSysTestCaseInput(): IPSSysTestCaseInput | null;

  /**
   * 测试用例输入（必须存在）
   *
   * @type {IPSSysTestCaseInput}
   */
  getPSSysTestCaseInputMust(): IPSSysTestCaseInput;

  /**
   * 脚本代码
   * @type {string}
   */
  scriptCode: string;
}
